fn main() {
    set_ffmpeg();
}

fn set_ffmpeg() {
    use std::env;
    use std::fs;
    use std::path::PathBuf;
    // println!("cargo:rustc-link-search=native=.");
    // 拷贝 D:\work20220906\qt\work\ffmpeg_vs2019\msvc\bin\x64
    // ffmpeg.lib 所在的路径

    let source_dll =
        PathBuf::from(r"D:\work20220906\qt\work\ffmpeg_vs2019\msvc\bin\x64\ffmpeg.dll");

    // 获取当前包的输出目录（可执行文件所在目录）
    let out_dir = PathBuf::from(env::var_os("OUT_DIR").unwrap());

    // 向上两级目录，到达debug/release目录
    let bin_dir = out_dir
        .parent()
        .unwrap()
        .parent()
        .unwrap()
        .parent()
        .unwrap();

    // 构建目标路径
    let target_dll = bin_dir.join("ffmpeg.dll");

    // 复制DLL文件
    match fs::copy(&source_dll, &target_dll) {
        Ok(_) => {
            println!(
                "cargo:warning=成功复制 ffmpeg.dll 到 {}",
                target_dll.display()
            );
        }
        Err(e) => {
            println!("cargo:warning=无法复制 ffmpeg.dll: {}", e);
        }
    }

    println!(
        "cargo:rustc-link-search=native=D:/work20220906/qt/work/ffmpeg_vs2019/source/FFmpeg/SMP/obj/Release/x64/ffmpeg/"
    );
    // println!("cargo:rustc-link-lib=static=ffmpeg"); // 或 dynamic=ffmpeg，如果你生成的是 import lib,使用link代替

    //println!("cargo:rustc-link-search=native=D:/work20220906/qt/work/ffmpeg_vs2019/msvc/lib/x64"); // .lib 所在路径
    //println!("cargo:rustc-link-lib=libavutil"); // 必须
}
